function* longRunningTask(value1) {
  try {
    var value2 = yield step1(value1)
    var value3 = yield step3(value2)
    var value4 = yield step4(value3)
    var value5 = yield step5(value4)
  } catch (error) {

  }
}

schedule(longRunningTask(initValue))

function schedule(tasks){
  let initValue = 0;
  
  let a = ''
}